// 给定浮点数x和整数n，计算x的n次方
// 思路，如果循环n次乘以x，时间复杂度为On，不符合要求
// 采用快速幂的思路，利用幂的二进制表示和分治思想来减少复杂度，如a^13可以分解为a^8 * a^4 * a^1

function myPow(x, n) {
    if (x === 0) {
        return 0
    }
    if (n < 0) {
        x = 1 / x
        n = -n
    }
    let res = 1
    while (n) {
        //判断n的二进制最后一位是否是1， 如果是1则将结果乘以x
        if (n & 1) {
            res *= x
        }
        x *= x
        n >>>= 1
    }
    return res
}

console.log(myPow(3, -2));